
package org.sql.commands.mysql.command;

// *************************************************************************/
// Charada Soft
// Area de Desarrollo de Sistemas de Información
// *************************************************************************/
// Proyecto : java connector sql 
// Archivo : ConfiguratorCommand.java
// Descripcion : Clase ConfiguratorCommand
// *************************************************************************/
// Version : 2.10.4
// Fecha de Creación: 30 de Junio de 2014
// Author : Daniel Andres Castillo Pedroza
// *************************************************************************/

import java.util.ArrayList;

public class ConfiguratorCommand {
    
    /**
      * Este método nos permite crear una cadena de valores indefinidos
      * para el Comando SQL a ejecutar. Donde la cantidad de valores se
      * establece con un dato <code>int</code>.
      * @param numValues Cantidad de valores del Comando SQL
      * @return Retorna la cadena en un objeto <code>String</code>.
    */
    
    public static String valuesForSentence(int numValues) {
      String values = ""; // Declarando dato para Proceso
        
      for (int i = 0; i < numValues; i++) {
        if (i == (numValues - 1)) {
          values += "?";
        } // Último valor de la Sentencia
        
        else {
          values += "?,";  
        } // No es el último valor de la Sentencia
      }
      
      return values; 
    }
    
    /**
      * Este método nos permite crear una cadena de columnas definidas
      * para el Comando SQL a ejecutar. Donde laa columnas se establece 
      * con un dato <code>ArrayList</code>.
      * @param columns Columnas definidas del Comando SQL
      * @return Retorna la cadena en un objeto <code>String</code>.
    */
    
    public static String columnsForCommand(ArrayList <String> columns) {
      String columnsString = ""; // Declarando dato para Proceso
      
      for (int i = 0; i < columns.size(); i++) {
        if (i == (columns.size() - 1)) {
          columnsString += columns.get(i);
        } // Último valor de la Sentencia
        
        else {
          columnsString += columns.get(i) + ",";  
        } // No es el último valor de la Sentencia
      } // Recorriendo el Array de Columnas
      
      return columnsString;
    }
    
    /**
      * Este método nos permite crear una cadena de tablas definidas
      * para el Comando SQL a ejecutar. Donde laa tablas se establece 
      * con un dato <code>ArrayList</code>.
      * @param tables Tablas definidas del Comando SQL
      * @return Retorna la cadena en un objeto <code>String</code>.
    */
    
    public static String tablesForSelect(ArrayList <String> tables) {
      String tablesString = ""; // Declarando dato para Proceso
      
      for (int i = 0; i < tables.size(); i++) {
        if (i == (tables.size() - 1)) {
          tablesString += tables.get(i);
        } // Último valor de la Sentencia
        
        else {
          tablesString += tables.get(i) + ",";  
        } // No es el último valor de la Sentencia
      } // Recorriendo el Array de Columnas
      
      return tablesString;
    }
    
    /**
      * Este método nos permite crear una cadena de columnas definidas
      * para el Comando SQL a ejecutar. Donde laa columnas se establece 
      * con un dato <code>ArrayList</code>.
      * @param columns Columnas definidas del Comando SQL
      * @return Retorna la cadena en un objeto <code>String</code>.
    */
    
    public static String columnsForUpdate(ArrayList <String> columns) {
      String columnsString = ""; // Declarando dato para Proceso
      
      for (int i = 0; i < columns.size(); i++) {
        if (i == (columns.size() - 1)) {
          columnsString += columns.get(i) + " = ?";
        } // Último valor de la Sentencia
        
        else {
          columnsString += columns.get(i) + " = ?,";  
        } // No es el último valor de la Sentencia
      } // Recorriendo el Array de Columnas
      
      return columnsString;
    }
}